<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
  </head>

  <body>
    <div id="app">
      <!-- 组件实例对象 -->
      <cpn></cpn>
      <cpn></cpn>
      <cpn></cpn>
    </div>

    <template id="cpn">
      <div>
        <h2>当前计数：{{counter}}</h2>
        <button @click="increment()">+</button>
        <button @click="decrement()">-</button>
      </div>
    </template>
    <script src="../js/vue.js"></script>
    <script>
      const obj = {
        counter: 0
      }

      // 1.注册组件
      Vue.component('cpn', {
        template: '#cpn',
        // data() {
        //   return { // 每个组件实例用data时得到新的对象（内存地址），通过自己独有的内存地址访问不同的对象，不会相互影响
        //     counter: 0
        //   }
        // },
        data() {
          return obj // 每个组件实例用data时得到同一个的对象（内存地址），通过同一个内存地址访问同一个的对象，会相互影响
        },
        methods: {
          increment() {
            this.counter++
          },
          decrement() {
            this.counter--
          }
        }
      })

      const app = new Vue({
        el: '#app',
        data: {
          message: '你好'
        }
      })
    </script>
  </body>
</html>
